#pragma once
/*
 * Created by: Mark Lavrynenko
 * Email:	MarkLavrinenko@gmail.com
 * Project:	  Huffman
*/

#include <stdint.h>
#include <vector>

using std::vector;

class DataTarget
{
public:
	virtual bool putNextByte(uint8_t next) = 0;
	virtual bool putNextInt16(int16_t next) = 0;
	virtual bool putNextInt32(int32_t next) = 0;
	virtual bool putNextBit(const bool &value) = 0;
	virtual bool putBitSequence(const vector<char> &bits) = 0;
	virtual void finishByte() = 0;
	friend class BitSequence;
};

